// package com.advertisementsystem.Controller;
//
// import com.advertisementsystem.aop.RequiresPermission;
// import com.advertisementsystem.Exception.ResponseResult;
// import org.springframework.security.access.prepost.PreAuthorize;
// import org.springframework.web.bind.annotation.GetMapping;
// import org.springframework.web.bind.annotation.RequestMapping;
// import org.springframework.web.bind.annotation.RestController;
//
// @RestController
// @RequestMapping("/test/auth")
// public class AuthTestController {
//
//     // 1. 管理员角色测试
//     @GetMapping("/admin")
//     @PreAuthorize("hasRole('ADMIN')")
//     public ResponseResult<?> adminTest() {
//         return ResponseResult.success("您有管理员权限");
//     }
//
//     // 2. 广告用户角色测试
//     @GetMapping("/advertiser")
//     @PreAuthorize("hasRole('ADVERTISER')")
//     public ResponseResult<?> advertiserTest() {
//         return ResponseResult.success("您有广告用户权限");
//     }
//
//     // 3. 设备拥有者角色测试
//     @GetMapping("/device-owner")
//     @PreAuthorize("hasRole('DEVICE_OWNER')")
//     public ResponseResult<?> deviceOwnerTest() {
//         return ResponseResult.success("您有设备拥有者权限");
//     }
//
//     // 4. 用户管理权限测试
//     @GetMapping("/user/list")
//     @PreAuthorize("hasAuthority('system:user:list')")
//     public ResponseResult<?> userListTest() {
//         return ResponseResult.success("您有查看用户列表的权限");
//     }
//
//     // 5. 广告管理权限测试
//     @GetMapping("/ad/publish")
//     @PreAuthorize("hasAuthority('ad:publish')")
//     public ResponseResult<?> adPublishTest() {
//         return ResponseResult.success("您有发布广告的权限");
//     }
//
//     // 6. 设备管理权限测试
//     @GetMapping("/device/manage")
//     @PreAuthorize("hasAuthority('device:manage')")
//     public ResponseResult<?> deviceManageTest() {
//         return ResponseResult.success("您有管理设备的权限");
//     }
//
//     // 7. 组合权限测试 - 管理员且有用户管理权限
//     @GetMapping("/admin/user/manage")
//     @PreAuthorize("hasRole('ADMIN') and hasAuthority('system:manage')")
//     public ResponseResult<?> adminUserManageTest() {
//         return ResponseResult.success("您有管理员角色和用户管理权限");
//     }
//
//     // 8. 组合权限测试 - 广告用户且有广告发布权限
//     @GetMapping("/advertiser/publish")
//     @PreAuthorize("hasRole('ADVERTISER') and hasAuthority('ad:publish')")
//     public ResponseResult<?> advertiserPublishTest() {
//         return ResponseResult.success("您有广告用户角色和广告发布权限");
//     }
//
//     // 9. 多角色测试 - 管理员或广告用户
//     @GetMapping("/admin-or-advertiser")
//     @PreAuthorize("hasRole('ADMIN') or hasRole('ADVERTISER')")
//     @RequiresPermission("system:view")
//     public ResponseResult<?> adminOrAdvertiserTest() {
//         return ResponseResult.success("您是管理员或广告用户");
//     }
//
//     // 10. 多权限测试 - 有查看或管理权限
//     @GetMapping("/view-or-manage")
//     @PreAuthorize("hasAuthority('system:view') or hasAuthority('system:manage')")
//     public ResponseResult<?> viewOrManageTest() {
//         return ResponseResult.success("您有查看或管理权限");
//     }
// }
